#pragma once
#include "IGameState.h"
#include "../SGD Wrappers/SGD_Declarations.h"
#include "../SGD Wrappers/SGD_Geometry.h"
#include "../SGD Wrappers/SGD_Handle.h"

class Menu;
class MenuCursor;

class OptionsState : public IGameState
{
public:
	//Singleton accessor
	static OptionsState* GetInstance();

	//IGameStateInterface
	virtual void Enter() override; //load resources
	virtual void Exit() override; //unload resources
	virtual bool Input() override; //handle user input
	virtual void Update(float elapsedTime) override; //update entities
	virtual void Render() override; //render entities/menu items

private:
	OptionsState() = default;
	virtual ~OptionsState() = default;
	OptionsState(const OptionsState&) = delete;
	OptionsState& operator=(const OptionsState&) = delete;

	Menu* menu = nullptr;
	MenuCursor* cursor = nullptr;
	int cursPos = 0;
	int sound = 0;
	int music = 0;

	SGD::HTexture background = SGD::INVALID_HANDLE;
	bool mouseInput = false;
};

